#pragma once
#include <iostream>
#include "Counter.h"

class Counter;

class MyString
{    
    Counter* m_pCounter;

public:
    explicit MyString(const char* Str = " ");// �����������,  explicit ��������� ����������� ��������� ��� ������
    MyString(const MyString&); //����������� �����������
    MyString(MyString&&); //������������ ����������� �����������
    ~MyString();//����������
   
    MyString& operator= (const MyString&);//�������� ������������ ����������� �����
    MyString& operator= (MyString&&);//������������ �������� ������������

    const char* GetString() const; //�����, ������� ��������� ������ � ���������� ������
    void SetNewString(const char*); //�����, ������� ����� �������� ������ �� �����

    //����������� ��� ������
    static void PrintAllStrings();
    //�� ���� �������� MyString �������� �������
    static void ChangeRegister();
    //������� ������ �� ��������
    static void PrintSortedStrings();
    

    friend std::ostream& operator<<(std::ostream& , const MyString&);
 };

std::ostream& operator<<(std::ostream&, const MyString&);



